feat: add contentType option #433
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hey there 👋
In order to support Declarative Web Push messages, which aim to reduce the complexity of using push on the web in general and address some challenges like privacy & battery life on mobile, a well-defined JSON body needs to be sent as payload to the push service. See also https://webkit.org/blog/16535/meet-declarative-web-push.
Since this payload is always a JSON object, the content type header of the HTTP request should be set accordingly. Which is why this pull request introduces the ability to configure on a global or per-notification basis the content type that should be set for the HTTP request to the push service.
While in practice most payloads probably are a JSON object already, I opted to make the content type header option an explicit opt-in and leave the default at
application/octet-streamin order to not introduce any breaking changes.Video 1: Sample app as-is
https://github.com/user-attachments/assets/6fbde6ed-3edb-4b30-a7a7-fe93f1f09e24
Video 2: Sample app modified with contentType "application/json" option
https://github.com/user-attachments/assets/ed71be90-79ad-46c4-b2dd-446bea16cc05